GangstarMV PC Port V1.0.0 for Linux
===================================

Files
  GangstarMV       the port (Linux, a 32-bit x86 program)
  gmv_patch.bin    patch table for the game's low code range; must stay next to the program
  FIXES.txt        every fix and option the port adds, with its GangstarMV.ini key
                   (it writes paths the Windows way: read / for \)
  CHANGELOG.md     everything the port does, by part (CHANGELOG_old.md: the older record, by version)
  GangstarMV.app/  empty: put the game here (see below)
  add-on/          for optional add-ons you make from your own copies (see the note inside)
  custom radio/    for your own music (see the note inside)

What it needs
  A PC with an x86 processor (Intel or AMD; ARM processors are not supported), running a
  64-bit Linux that runs 32-bit programs, with glibc 2.35 or newer, and these 32-bit
  libraries: SDL 3.2 or newer, OpenGL (Mesa, or your GPU driver's 32-bit part), and FreeType
  and fontconfig for the gamepad button pictures. ffmpeg (any version, 64-bit is fine) plays
  the intro movie and m4a, aac and wma songs; without it the intro is skipped.

  Debian 13, Ubuntu 25.04 or newer:
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install libsdl3-0:i386 libgl1:i386 libgl1-mesa-dri:i386 libfreetype6:i386 libfontconfig1:i386 ffmpeg
  Other systems: install the same libraries in their 32-bit form. Ubuntu 24.04 and older
  have no SDL3 package.
  With NVIDIA's own driver, install its 32-bit libraries too.

The game itself is NOT included. You need your own copy of the original macOS game
(GangstarMV.app). Put it in one of these places (searched in this order):
  1. next to the program: replace the empty GangstarMV.app folder with yours, so that
                          GangstarMV.app/Contents/MacOS/GangstarMV is there
  2. one folder up:       <this folder>/../GangstarMV.app
  3. anywhere, via:       ./GangstarMV --app "/path/to/GangstarMV.app"
If the game is not found, a message says so.

To start it, run ./GangstarMV from this folder. If it was unpacked without its permissions
(from a zip, for example), first run:  chmod +x GangstarMV

Created on first run, next to the program
  savegame/        your save (Gangstar2.sav), in-game settings (Gangstar2.preferences) and
                   the port's settings, resolution and full screen included (GangstarMV.ini;
                   deleting it restores every default)
  cache/           the game's scratch files, GangstarMV.log, and GangstarMV.dmp after a crash

Your own music: put songs in the custom radio folder and turn on Custom Radio on the
game's SOUND page (see the note in that folder and FIXES.txt).

Settings
  Most of the port's options are in the game: OPTIONS, then the GAMEPATCH tab (DISPLAY,
  GRAPHICS, FIXES, MENU). The rest are in savegame/GangstarMV.ini; FIXES.txt explains each.
  ORIGINAL MAC EXPERIENCE plays the game as the Mac did: it keeps the fixes the port needs and
  the loading speed-ups, and turns everything else off.

Keys added by the port
  Alt+Enter        full screen <-> window
  Closing the window quits, like closing the Mac window: progress since the last save is lost.
  Gamepads (Xbox, PlayStation and others) work in play, and in the menus with PAD MENU POINTER.
  On a French or Belgian (AZERTY) keyboard the player moves with Z Q S D, as on the Mac.

Privacy and the log
  The port has no network code and sends nothing anywhere.
  cache/GangstarMV.log says what the port did; send it along if something goes wrong.
  It stays on your computer until you choose to send it. It records your settings, your
  graphics card and driver, your display modes and the names of your game controllers.
  Your home folder, this folder and the game's folder appear in it as $HOME, %EXE% and %APP%,
  never by name, and it does not name your songs.
  After a crash, cache/GangstarMV.dmp (a core file: gdb GangstarMV GangstarMV.dmp) holds what
  the port's threads were doing (registers, stacks, the loaded files by name). The folders
  above, your environment variables and the computer's name are blanked in it, but it is raw
  memory, so it can hold other scraps such as a song's file name. It stays on your computer
  until you choose to send it, and the next start deletes it.
  To turn the log and the crash dump off, set LOG=0 in savegame/GangstarMV.ini.

To keep your progress from another copy of the port, copy its savegame/ folder here.

Tested so far: Debian 13 in WSL2 (Mesa's software renderer). Not yet on a Linux with a real GPU.
